Lambda দিয়ে DynamoDB Streams প্রসেসিং

Database Tutorials - ডাইনামোডিবি (DynamoDB) DynamoDB Streams এবং Lambda Integration |
236
236

DynamoDB Streams হল একটি ফিচার যা DynamoDB টেবিলের উপর যে কোনও পরিবর্তন (যেমন, ইনসার্ট, আপডেট, বা ডিলিট) ট্র্যাক করে এবং তা একটি স্ট্রিমে সংরক্ষণ করে। AWS Lambda কে DynamoDB Streams এর সাথে সংযুক্ত করে, আপনি রিয়েল-টাইমে ডেটা পরিবর্তন প্রসেস করতে পারেন। উদাহরণস্বরূপ, যদি আপনার DynamoDB টেবিলে কোনও নতুন রেকর্ড যোগ হয় বা কোনও রেকর্ড আপডেট হয়, Lambda ফাংশন তখনই চালু হবে এবং নির্দিষ্ট কাজ করতে পারবে, যেমন ডেটা প্রক্রিয়া করা, অন্য সার্ভিসে পাঠানো, বা লগ তৈরি করা।

এটি event-driven architecture তৈরি করতে সাহায্য করে, যেখানে DynamoDB টেবিলের পরিবর্তন সিস্টেমের অন্যান্য অংশের জন্য অটোমেটিক্যালি ট্রিগার তৈরি করতে পারে।


DynamoDB Streams এবং Lambda ইন্টিগ্রেশন

DynamoDB Streams এবং AWS Lambda ইন্টিগ্রেট করার জন্য আপনাকে কয়েকটি ধাপ অনুসরণ করতে হবে।


ধাপ ১: DynamoDB Streams এনাবল করা

প্রথমে, আপনাকে DynamoDB টেবিলে Streams সক্রিয় করতে হবে। এই স্ট্রিমটি টেবিলের উপর করা সমস্ত পরিবর্তন ক্যাপচার করবে এবং Lambda ফাংশন সেই পরিবর্তন প্রসেস করতে পারবে।

  1. AWS Management Console এ লগ ইন করুন।
  2. DynamoDB সার্ভিসে যান এবং আপনার টেবিল নির্বাচন করুন।
  3. Exports and Streams ট্যাবটি খুলুন।
  4. DynamoDB Stream সক্রিয় করতে Enable Stream নির্বাচন করুন।
  5. স্ট্রিমের টাইপ নির্বাচন করুন:
    • New image: নতুন ডেটা ইনসার্ট বা আপডেট হলে স্ট্রিমে সেগুলি প্রেরণ করা হবে।
    • Old image: পুরানো ডেটা (যেমন, ডিলিট হওয়া রেকর্ড) স্ট্রিমে পাঠানো হবে।
    • New and old images: উভয় নতুন এবং পুরানো ডেটা স্ট্রিমে পাঠানো হবে (এই অপশনটি খুবই কার্যকরী যখন আপনি ডেটার আগের এবং পরের অবস্থা দেখতে চান)।

ধাপ ২: Lambda ফাংশন তৈরি করা

Lambda ফাংশনটি ব্যবহারকারী যে পরিবর্তনটি করছে তা প্রসেস করবে। এটি DynamoDB Streams এর ইনপুট হিসেবে কাজ করবে এবং টেবিলের পরিবর্তনগুলি প্রসেস করবে।

  1. AWS Lambda কনসোলে যান এবং একটি নতুন ফাংশন তৈরি করুন।
  2. ফাংশনের জন্য একটি নাম দিন (যেমন: DynamoDBStreamProcessor), এবং Runtime হিসেবে Python বা Node.js নির্বাচন করুন।
  3. ফাংশনের জন্য একটি Execution Role নির্বাচন করুন যা DynamoDB Streams এবং অন্যান্য সেবা অ্যাক্সেস করতে পারে। এই Role-এ DynamoDB Streams এর StreamRead পারমিশন থাকতে হবে।
  4. ফাংশনটি তৈরি করার পর, নিচের কোড ব্যবহার করতে পারেন:

Python উদাহরণ কোড:

import json

def lambda_handler(event, context):
    # স্ট্রিমের ভিতরের রেকর্ডে প্রতিটি পরিবর্তন প্রসেস করা
    for record in event['Records']:
        print(f"Event Name: {record['eventName']}")
        
        if record['eventName'] == 'INSERT':
            print("New record added:", json.dumps(record['dynamodb']['NewImage']))
        elif record['eventName'] == 'MODIFY':
            print("Record modified:", json.dumps(record['dynamodb']['NewImage']))
        elif record['eventName'] == 'REMOVE':
            print("Record removed:", json.dumps(record['dynamodb']['OldImage']))
            
    return {'statusCode': 200, 'body': json.dumps('Processed DynamoDB stream successfully!')}

ধাপ ৩: Lambda ফাংশন এবং DynamoDB Stream এর মধ্যে ট্রিগার সেট করা

Lambda ফাংশনটি DynamoDB Stream এর মাধ্যমে ট্রিগার করা হবে। DynamoDB Stream এর প্রতিটি ইভেন্ট Lambda ফাংশনের event প্যারামিটার হিসেবে পৌঁছাবে।

  1. Lambda কনসোল এ গিয়ে আপনার ফাংশন নির্বাচন করুন।
  2. Designer অংশে Add trigger বাটনে ক্লিক করুন।
  3. Trigger হিসেবে DynamoDB নির্বাচন করুন।
  4. আপনার DynamoDB টেবিলের স্ট্রিম সিলেক্ট করুন এবং ট্রিগারটি অ্যাক্টিভেট করুন।

এখন, যখনই আপনার DynamoDB টেবিলে কোনো পরিবর্তন হবে (যেমন ইনসার্ট, আপডেট বা ডিলিট), সেই পরিবর্তন Lambda ফাংশন দ্বারা প্রসেস করা হবে।


ধাপ ৪: Lambda Execution Role অ্যাসাইন করা

Lambda ফাংশনের জন্য একটি Execution Role অ্যাসাইন করুন, যা DynamoDB Streams থেকে ডেটা অ্যাক্সেস করার অনুমতি দেবে।

  1. IAM Console এ গিয়ে একটি নতুন Execution Role তৈরি করুন।
  2. এই Role এর জন্য নিচের পারমিশন প্রয়োজন:

    • dynamodb:DescribeStream
    • dynamodb:GetRecords
    • dynamodb:GetShardIterator
    • dynamodb:ListStreams

    এই পারমিশনগুলো Lambda ফাংশনকে DynamoDB Stream থেকে ডেটা রিড করতে সহায়তা করবে।

  3. এই Role কে Lambda ফাংশনে অ্যাসাইন করুন।

ধাপ ৫: Lambda Logs মনিটর করা

Lambda ফাংশনটি চলার সময় সমস্ত লোগ আপনি Amazon CloudWatch এর মাধ্যমে দেখতে পারবেন। এটি আপনাকে Lambda ফাংশনের কার্যকারিতা মনিটর করতে এবং সমস্যা শনাক্ত করতে সহায়তা করবে।

  • Lambda ফাংশনটি এক্সিকিউট হওয়ার পর আপনি CloudWatch Logs এ গিয়ে দেখতে পারবেন যে কোন রেকর্ডগুলি প্রসেস হয়েছে এবং কোনো সমস্যা হয়েছে কিনা।

উপসংহার

DynamoDB Streams এবং AWS Lambda এর ইন্টিগ্রেশন খুবই শক্তিশালী এবং এটি real-time ডেটা প্রসেসিংয়ে একটি দক্ষ সমাধান। DynamoDB Streams ব্যবহার করে আপনি আপনার টেবিলের পরিবর্তনগুলি ক্যাপচার করতে পারবেন এবং Lambda দিয়ে সেই ডেটা প্রসেস করতে পারবেন, যা আপনাকে event-driven architectures তৈরি করতে সাহায্য করবে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion